//
//  UIImageView+Extension.swift
//  上海微博
//
//  Created by co on 16/2/26.
//  Copyright © 2016年 王南侠. All rights reserved.
//

import UIKit

extension UIImageView{
    
    /**
     使用图像名称创建 UIimageView
     
     - parameter imageName: imageName
     
     - returns: UIimage
     */
    convenience init(cz_imageName:String) {
        self.init(image: UIImage(named:cz_imageName))
    }
    
    /// 设置图像
    ///
    /// - parameter urlString:       urlString
    /// - parameter placeholderName: placeholderName
    
    ///  parameter size:            裁剪图像的尺寸 ，默认是 CGSizeZero 不裁剪
    ///  parameter isCorner:        是否圆角裁切默认不裁切 只有在 size ！= CGSizeZero 有效
    ///  parameter backColor:       背景颜色,默认颜色白色 只有 size ！= CGSizeZero 有效
    
    func cz_setImageWithURL(urlString: String?,
        placeholderName: String?,
        size:CGSize = CGSizeZero,
        isCorner:Bool = false,
        backColor: UIColor? = UIColor.whiteColor()) {
        
        // 占位图像
        var placeholderImage: UIImage?
        
        if placeholderName != nil {
            placeholderImage = UIImage(named: placeholderName!)
        }
        
        // 如果 url 为 nil
        guard let urlString = urlString,
            let url = NSURL(string: urlString) else {
                // 如果 urlString 为nil，但是指定了占位图像，显示占位图像
                image = placeholderImage
                
                return
        }
            
        // 判断裁切尺寸
            if size == CGSizeZero{
                sd_setImageWithURL(url, placeholderImage: placeholderImage)
                
                return
            }
            // 对图像进行裁切 从网络不一定能获得到图像
            sd_setImageWithURL(url, placeholderImage: placeholderImage) { (image, _, _, _) -> Void in
                
                // 1.判断图像是否存在，如果没有图像就返回
                guard let image = image else {
                    return
                }
                
                // 2.对图像进行裁切
                image.cz_asynDrawImage(size, isCorner: isCorner, backColor: backColor, finshed: { (image) -> () in
                    
                    self.image = image
                })
            }
            
       }
}
